from core.optimizer import Optimizer


class SGD(Optimizer):
    def __init__(self, lr=0.01):
        """
        随机梯度下降（Stochastic Gradient Descent, SGD）优化器。

        Args:
            lr (float): 学习率，控制参数更新的步长。
        """
        super().__init__()
        self.lr = lr

    def update_one(self, param):
        """
        更新单个参数。

        Args:
            param (Parameter): 待更新的参数。

        Returns:
            None
        """
        # 根据学习率更新参数值
        param.data -= self.lr * param.grad.data
